Todo App YAML Problems

As the Kubernetes API evolves some of the Todo App YAML provided for you in the GitHub project https://github.com/gravitonian/todo-cloud-k8s-starter might fail during deployment. Why is this? There are some significant changes in Kubernetes version 1.16 that affects, among other things, the Deployment object.

The Deployment object is defined in the Todo App YAML as follows:

apiVersion: extensions/v1beta1
kind: Deployment
...

So we are assuming it belongs to API version extensions/v1beta1, which is true until Kubernetes version 1.16, when it changes to apps/v1.

You can check what version of Kubernetes you are running with the following command:

$ kubectl get nodes
NAME           STATUS ROLES  AGE  VERSION
docker-desktop Ready  master 17m  v1.14.8

We can see that I am running Kubernetes version 1.14.8, so the Todo App YAML should work fine. However, if you are running Kubernetes version 1.16 or newer, you will have a problem (see this blog for the whole story), and you will see error messages as follows:

error: unable to recognize "todo-redis-deployment.yaml": no matches for kind "Deployment" in version "extensions/v1beta1"

You then have to update all the Deployment YAML to look like follows in your GitHub project:

apiVersion: apps/v1
kind: Deployment
...


Todo App problems when running Kubernetes with Minikube

There have also been issues when running with minikube.

You might have to increase memory and modify permissions to the volumes for Elasticsearch to deploy successfully.